不同设计的动态功耗优化策略
📑 目录
不同设计的动态功耗优化策略
会议: SNUG TPC Low Power
作者: Albred Mo (amo@nvidia.com)
页数: 10
源文件: SNUG_TPC_LowPower_YM_Dynamic_Power_Optimization_Strategy_For_Different_Designs_Albred_paper.pdf
Page 1
不同设计的动态功耗优化策略
Albred Mo amo@nvidia.com
摘要
动态功耗 Dynamic Power优化在高性能芯片 High Performance Chip设计中越来越重要。目前IC Compiler支持并发动态优化,我们实现了约5%以上的动态功耗降低。本文将展示SAIF 开关活动交换格式在我们的流程中如何工作,功耗优化流程如何适用于不同设计(高或低活动性、高或低单元密度),时序/面积/功耗的QoR如何,并帮助理解ICC的功耗优化机制。
关键词:动态功耗优化,SAIF
Page 2
目录
1. 功耗优化流程 2. 流程设置 2.1 低功耗布局 2.2 高活动性设计与低活动性设计 2.3 使用SAIF和不使用SAIF(无矢量) 2.4 触发器组合策略 3. 最终结果 4. 结论
Page 3
图表
图1:功耗优化流程 图2:移动单元以缩短高活动性网络 图3:网络活动性(X)vs 线电容(Y)散点图——未使用LPP 图4:网络活动性(X)vs 线电容(Y)散点图——使用LPP 图5:意外的较大面积差距(*由于特殊低漏电触发器) 图6:按类型划分的单元面积 图7:动态功耗比较 图8:总功耗比较 图9:面积比较
Page 4
1. 功耗优化流程
在我们之前的流程中,我们默认开启泄漏功耗 Leakage Power优化。为了优化动态功耗,我们使用总功耗策略(set_total_power_strategy –effort high),同时考虑动态功耗和漏电功耗。
我们在布局阶段进行总功耗优化,并在随后的阶段关闭它,因为布局阶段的优化对最终总功耗的影响最大。
为了获得更好的动态功耗性能,初始SAIF 开关活动交换格式是必需的。ICC会遵循SAIF中的网络活动性信息,但在PR流程中网络名称会在优化过程中改变(被删除或重命名),这些网络的活动性信息将丢失。特别是如果起始点(例如触发器的输出网络)的活动性丢失了,它无法通过活动性传播来刷新。因此,我们需要为最终数据库(布线后)重新生成SAIF,以便在最后进行功耗报告。
流程: 数据准备 → 布局 → ... → 布线后 初始SAIF → 动态功耗优化 → 最终SAIF → 功耗/时序/面积...
默认"仅漏电"流程是我们的基准。我们将"动态+漏电"流程与之进行比较。
图1:功耗优化流程
Page 5
2. 流程设置
2.1 低功耗布局
通过减少高活动性网络的长度来降低开关功耗 Switching Power。移动单元使得具有高翻转率的网络更短,代价是增加具有较低翻转率的网络长度。
(set_optimize_pre_cts_power_options -low_power_placement true)
图2:移动单元以缩短高活动性网络
在网络活动性(X)vs 线电容(Y)的散点图中:为了获得更好的开关功耗,活动性越大,线电容应该越小。 未使用LPP:高活动性网络的平均电容为0.00151234(蓝色圆圈中的节点不理想)
图3:网络活动性(X)vs 线电容(Y)散点图——未使用LPP
Page 6
使用LPP:高活动性网络的平均电容为0.00133571(-11.7%)
图4:网络活动性(X)vs 线电容(Y)散点图——使用LPP
开启LPP后,高活动性网络的线电容减少约11.7%,贡献约1%的动态功耗降低,因此我们在后续的动态功耗优化试验中保持启用。
2.2 高活动性设计与低活动性设计
我们选择一些典型工作模式(顶层)来生成SAIF(需要合并),一些模块在这些模式下具有高活动性,而其他模块则不是。我们发现低活动性模块无法获得与高活动性模块同样的动态功耗降低效果。这是合理的,因为低活动性设计的动态优化改进空间非常小。因此,最好为这类模块从典型工作模式生成SAIF,确保ICC在做正确的工作。
我们将选择高/中等活动性模块进行后续试验。
Page 7
2.3 使用SAIF和不使用SAIF(无矢量)
建议在没有SAIF的情况下为模块运行动态功耗优化。
我们为同一设计并行运行了使用和不使用SAIF的试验,发现"不使用SAIF"的运行具有与"使用SAIF"运行接近的动态性能,包括内部功耗和开关功耗。
有时模块没有可用或合格的SAIF,但被认为具有高活动性设计,这时我们可以尝试在没有SAIF的情况下为它们运行动态优化。
2.4 触发器组合策略
在开始时,我们发现"动态+漏电开启"和"仅漏电"试验之间存在较大的标准单元面积差距(4个模块A/B/C/D平均11.2%)。
图5:意外的较大面积差距(*由于特殊低漏电触发器)
触发器的面积减少最多:
图6:按类型划分的单元面积
Page 8
对于"仅漏电"运行,ICC使用了大量低漏电触发器,这些触发器的面积比具有相同驱动强度的普通触发器更大。对于低单元密度或高漏电性能要求的设计来说,这是一个好的策略。这是功耗和面积之间的权衡问题,而"动态+漏电"运行在此处取得了良好的平衡。
我们认为面积差距显著,因此决定优化"仅漏电"运行的触发器组合列表以进行功耗优化。然后ICC使用更少的低漏电触发器,面积差距从11.6%下降到4%(如下一节所示),而漏电性能没有太大降低。我们相信这将是对"动态+漏电"运行的公平比较。
这提醒我们,触发器组合策略对我们的功耗优化方法论有深远的影响。我们需要评估不同单元密度设计或不同功耗性能需求的面积成本。
3. 最终结果
首先,对于动态功耗,所有模块都得到了改进。它平均实现了约6%的降低,最佳模块"A"实现了约10%的降低。
图7:动态功耗比较
对于总功耗,所有模块也都得到了改进(虽然漏电功耗更差)。平均降低约3%:
Page 9
图8:总功耗比较
面积差距平均为4%:
图9:面积比较
时序和DRC 设计规则检查相当相似。
Page 10
4. 结论
通过动态功耗 Dynamic Power优化,我们平均获得了6%的动态功耗降低(3%总功耗降低)和4%的面积减少。总功耗优化策略表现出良好的动态功耗性能,且没有时序影响。可以预期,动态功耗比例越高,总功耗收益越大。
低活动性模块获得的动态功耗降低收益比高/中等模块少。最好从典型工作模式生成SAIF 开关活动交换格式。
我们可以为没有SAIF但被认为具有高活动性设计的模块运行动态优化。
触发器组合策略对我们的功耗优化方法论具有深远的影响。我们需要评估面积成本并针对不同设计修改我们的策略。
图片索引
本文共3张图片,存放于 SNUG_TPC_LowPower_YM_Dynamic_Power_Optimization_Strategy_For_Different_Designs_Albred_paper_images/ 目录。
第4页:图1 功耗优化流程 第5页:图2 移动单元以缩短高活动性网络、图3 未使用LPP的散点图 第6页:图4 使用LPP的散点图 第7页:图5 面积差距图、图6 不同单元类型面积对比 第8页:图7 动态功耗比较 第9页:图8 总功耗比较、图9 面积比较